Increasingly, distributed computing systems are becoming a prevalent aspect of everyday life. Distributed computing devices are now connected by local area networks, wide area networks, and networks of networks, such as the internet. Many such networks are secured by a variety of techniques, including firewall software, routing limitations, encryption, virtual private networks, and/or other means. Computers within a security perimeter may be given ready access to data stored in the secure network, usually subject to user and group permissions, access control lists, and the like, while machines outside the perimeter are substantially or entirely denied access.
With the growth of such secure networks and their information content, there is an increasing need to support secure access by authorized users. There is also an increasing need to authenticate users because even though a user may be authorized to access a network there are certain communications over a network that are regarded to be more sensitive than others. The use of encryption and decryption techniques are increasingly being regarded as essential when carrying out any kind of sensitive transaction, such as a credit-card purchase over the internet, or the discussion of company confidential information between different remote departments in an organization.